package fr.emn.nuitinfo.model;

import java.io.Serializable;

import com.googlecode.objectify.ObjectifyService;
import com.googlecode.objectify.annotation.Entity;
import com.googlecode.objectify.annotation.Id;

import fr.emn.nuitinfo.model.interfaces.IChasse;
import fr.emn.nuitinfo.model.interfaces.IEtape;
import fr.emn.nuitinfo.model.interfaces.IParticipationChasse;
import fr.emn.nuitinfo.model.interfaces.IUtilisateur;

@Entity
public class ParticipationChasse implements IParticipationChasse, Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 8081202421784793158L;
    @Id
    private long              id;
    private boolean           isFinie;
    private IChasse           chasse;
    private IUtilisateur      participant;
    private IEtape            etapeCourante;

    public ParticipationChasse() {
	ObjectifyService.register(getClass());
    }

    public ParticipationChasse(IChasse chasse, IUtilisateur participant,
	    IEtape etapeCourante) {
	this.isFinie = false;
	this.chasse = chasse;
	this.participant = participant;
	this.etapeCourante = etapeCourante;
    }

    public long getId() {
	return id;
    }

    @Override
    public boolean isFinie() {
	return this.isFinie;
    }

    @Override
    public void setFinie() {
	this.isFinie = true;
    }

    @Override
    public IChasse getChasse() {
	return this.chasse;
    }

    @Override
    public IEtape getEtapeCourante() {
	return this.etapeCourante;
    }

    @Override
    public IUtilisateur getParticipant() {
	return this.participant;
    }

}
